-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ADD] estate: Create an estate app #332
base: 18.0
Are you sure you want to change the base?
Conversation
- Created an estate application for Odoo - Added access rights in `ir.model.access.csv` for `estate.property` - Created XML data files for actions and menus in the estate module - Defined three-level menu structure for property management - Implemented default values and field attributes for `estate.property` - Added `active` and `state` fields with predefined behaviors
estate/__manifest__.py
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ordering does not look proper. Take the help of code base to check the order in which we specify the keys of manifest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sami-odoo The changes are done. Thank you for informing.
• Implemented list view to display key property details in a structured manner. • Designed form view with grouped fields and a notebook for better organization. • Created search view with availability filter and postcode grouping.
…tate app • Created Property Type, Property Tag, and Property Offer models. • Added `Many2one`, `Many2many`, and `One2many` relations between models. • Updated property views to include types, tags, and offers with widgets.
…tate app • Created Property Type, Property Tag, and Property Offer models. • Added `Many2one`, `Many2many`, and `One2many` relations between models. • Updated property views to include types, tags, and offers with widgets.
• Added action buttons to trigger business logic in the estate module • Implemented 'Sold' and 'Cancel' actions for properties with state validation • Added 'Accept' and 'Refuse' actions for property offers • Ensured 'Accept' action updates buyer and selling price for property
• Added a custom form view for property offers page. • Removed the property name field from the form view of the offer. • Improved error handling for invalid transitions. • Ensured only one offer can be accepted per property. • Prevented selling a property unless an offer is accepted.
• Ensured `expected_price`, `selling_price`, and `offer_price` are positive. • Added unique constraints for `property type` and `property tag` names. • Added a constraint to prevent selling a property below 90% of expected price.
• Introduced inline list view for property types. • Added status bar widget for property state visualization. • Set default and manual ordering for multiple models. • Included sequence field for property types to enable manual ordering. • Prevented property type editing directly from the property form. • Enabled color picker for property tags. • Adjusted button visibility based on property state. • Made garden-related fields invisible when no garden exists. • Restricted offer submissions when property is in specific states. • Made list views for offers and tags editable. • Set availability date as optional and hidden by default. • Applied visual decorations for various property and offer states. • Implemented default filter to display available properties. • Enhanced search filter for living area. • Added stat button to property types to monitor associated offers. • Filtered stat button results to display only relevant offers.
Change the sequence of 'estate_property_offer_views.xml' in the manifest file
• Restricted deletion of properties to when state is “New” or “Cancelled” using @api.ondelete. • Updated property state to “Offer Received” upon new offer creation and blocked offers lower than the best existing offer. • Extended the Users form view to show the salesperson’s associated properties.
• Created estate_account module linking real estate and accounting. • Override action_sold() to trigger customer invoice creation. • Added invoice lines: 6% of price + 100.00 admin fee. • Used Command.create() for One2many invoice lines.
• Implemented a Kanban view displaying property details. • Ensured best price is shown only when an offer is received and selling price only when an offer is accepted. • Applied default grouping by property type. • Disabled drag-and-drop for structured data representation. • Added a custom house icon for the Real Estate module.
…ices • Ensured compliance with Odoo guidelines and best practices. • Refactored models to enhance data integrity and maintainability.
• Defined security groups and record rules to restrict access based on roles. • Restricted property visibility to company-specific agents. • Included demo data for properties, offers, and tags. • Ensured offer dates are dynamically set relative to installation. • Formatted code to align with Odoo coding guidelines.
…tatements • Added a chatter to the Property Form. • Refactored the import statements to match the coding guidelines.
• Changed the main template of Kanban view from kanban-box to card.
• Previously, an exception could be created before validating the user's access rights, leading to unintended behavior. • Now, the `check_access('write')` is executed first, and only if it succeeds does the system proceed with creating the invoice. • If the user lacks the necessary permissions, an `AccessError` is raised immediately, preventing any unintended record creation.
• Created a 'Properties' website to list available properties. • Added a new field image to the estate property and added demo images. • Added Website button in the Estate menu. • Implemented a grid layout for property listings with images. • Added pagination to display a maximum of 6 properties per page.
bc42f4c
to
75020d0
Compare
• Created property offers report with templates. • Added sub-templates for reuse across reports. • Implemented inheritance in estate_account module.
…tion • Previously, agents could modify the salesperson field, which was unintended. Now, only managers have write access. • The error message is wrapped in `_()`, ensuring it appears in the user's language if a translation is available.
• Added test cases for following. • Properties cannot be sold if no offer is accepted • Offers cannot be accepted on already sold properties • Garden area and orientation automatically reset when garden checkbox is unchecked • Best price is correctly calculated from multiple offers • Lower offers are rejected when higher ones exist
• Added estate.offer.wizard TransientModel for bulk offer creation • Added wizard form view with price, validity and buyer fields • Added action to create offers on multiple properties simultaneously
• Created an initial Counter component inside Playground to track state. • Extracted Counter logic into a separate component for reusability. • Created a reusable Card component with title and content props.
0f1ff8b
to
7a3c500
Compare
• Updated Card component to use `t-out` instead of `t-esc` for rendering HTML. • Introduced markup() in Playground to handle HTML content.
…ights • Fix missing placeholder images on property cards when no image is uploaded in Estate Property website. • Correct access control rights for the estate property wizard module.
• Added props validation to `Card` and `Counter` to enforce expected prop types • Implemented callback props in `Counter` to notify `Playground` • Updated `Playground` to track and display the sum of multiple `Counter` values
• Created TodoList component to manage a list of todos using useState • Created TodoItem component to display individual todos with props validation • Integrated TodoList into Playground for display
…Item • Used t-att-class to visually indicate completed tasks. • Updated hardcoded this.todos values for testing completion status. • Applied Bootstrap class text-muted and text-decoration-line-through. • Ensured dynamic attributes update based on isCompleted flag.
• Removed hardcoded todos and initialized this.todos as an empty state. • Added an input field with a placeholder for entering new tasks. • Implemented addTodo method to handle keyup event and add new todos. • Ensured todos have unique incremental IDs.
• Implemented t-ref and useAutofocus to reference the input field. • Extracted logic into a useAutofocus hook for better reusability.
770a371
to
64134fc
Compare
• Implemented `t-ref` and `useRef` to focus the input field on mount. • Extracted focus logic into a reusable `useAutofocus` hook. • Added a checkbox in `TodoItem` to toggle the completion state. • Introduced a `toggleState` callback prop to update the todo state in TodoList. • Ensured todo completion state updates correctly when toggled.
ir.model.access.csv
forestate.property
estate.property
active
andstate
fields with predefined behaviors